package com.education.ai.service;

import com.education.ai.entity.Teacher;

import java.util.List;
import java.util.Optional;

/**
 * 教师服务接口
 */
public interface TeacherService {
    
    /**
     * 获取所有教师
     * 
     * @return 教师列表
     */
    List<Teacher> getAllTeachers();
    
    /**
     * 根据ID获取教师
     * 
     * @param id 教师ID
     * @return 教师
     */
    Optional<Teacher> getTeacherById(Long id);
    
    /**
     * 根据教师工号获取教师
     */
    Optional<Teacher> getTeacherByTeacherId(String teacherId);
    
    /**
     * 保存教师
     * 
     * @param teacher 教师
     * @return 保存后的教师
     */
    Teacher saveTeacher(Teacher teacher);
    
    /**
     * 删除教师
     * 
     * @param id 教师ID
     */
    void deleteTeacher(Long id);
    
    /**
     * 根据姓名模糊查询教师
     */
    List<Teacher> searchTeachersByName(String name);
    
    /**
     * 根据学科获取教师
     */
    List<Teacher> getTeachersBySubject(String subject);
    
    /**
     * 根据学科和姓名查询教师
     */
    List<Teacher> searchTeachersBySubjectAndName(String subject, String name);
    
    /**
     * 判断教师工号是否存在
     * 
     * @param teacherId 教师工号
     * @return 是否存在
     */
    boolean isTeacherIdExists(String teacherId);
    
    /**
     * 更新教师密码
     * 
     * @param teacherId 教师工号
     * @param currentPassword 当前密码
     * @param newPassword 新密码
     * @return 是否更新成功
     */
    boolean updatePassword(String teacherId, String currentPassword, String newPassword);
} 